#include <stdio.h>
/*
 author: maxiao
 date: 2023-04-04 9:31
 description: 定义函数实现字符统计功能
*/

// 声明函数
int stringlen(char*);
int str_count(char*);

// 主程序入口
int main()
{
    // 普通数字标点字母占1个字节，一个汉字占用3个字节
    char str[] = "hi!";
    int a, c;
    // sizeof(str)用于统计内容占用的字节数（包含字符串结尾的\0）
    printf("sizeof(%s)=%lu\n", str, sizeof(str));
    // 调用函数
    a = stringlen(str);
    printf("① 字符串%s的长度为 %d\n", str, a);
    // 调用递归函数
    c = str_count(str);
    printf("② 字符串%s的长度为 %d\n", str, c);
    return 0;
}

// 定义函数
int stringlen(char* b)
{
    int count = 0;
    while (*b != '\0')
    {
        count++;
        // printf("%p\n", b);
        b++;
    }
    return count;
}

// 使用递归统计字符数
int str_count(char* b)
{
    if (*b != '\0')
        return 1 + str_count(++b);
    else
        return 0;
}
